package com.didispace;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloApplication {

	public static void main(String[] args) {
		SpringApplication.run(HelloApplication.class, args);
	}
}

// http://localhost:8881/hello
// Hello World
// <version>1.3.7.RELEASE</version>  SUCCESS
// <version>2.0.2.RELEASE</version>  SUCCESS
// <version>2.1.2.RELEASE</version>  SUCCESS
// <version>2.2.6.RELEASE</version>  SUCCESS
// 影响版本
// Spring Boot < 1.5 默认未授权访问所有端点
// Spring Boot >= 1.5 默认只允许访问/health和/info端点，但是此安全性通常被应用程序开发人员禁用。
// <version>2.2.6.RELEASE</version>
// http://localhost:8881/actuator
// {"_links":{"self":{"href":"http://localhost:8881/actuator","templated":false},"health":{"href":"http://localhost:8881/actuator/health","templated":false},"info":{"href":"http://localhost:8881/actuator/info","templated":false}}}

// http://localhost:8881/actuator/health
// {"status":"UP"}

// http://localhost:8881/actuator/info
// {"app":{"name":"spring-boot-hello","version":"v1.0.0"}}

// http://localhost:8881/actuator/beans
//  org.springframework.boot.autoconfigure.web.        DispatcherServletAutoConfiguration$DispatcherServletConfiguration
// "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration": {
// 	"aliases": [],
// 	"scope": "singleton",
// 	"type": "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration$$EnhancerBySpringCGLIB$$29d727dd",
// 	"resource": null,
// 	"dependencies": [
// 	"spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties",
// 	"server-org.springframework.boot.autoconfigure.web.ServerProperties"
// 	]
// },
// "dispatcherServlet"
// "dispatcherServlet": {
// 	"aliases": [],
// 	"scope": "singleton",
// 	"type": "org.springframework.web.servlet.DispatcherServlet",
// 	"resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/DispatcherServletAutoConfiguration$DispatcherServletConfiguration.class]",
// 	"dependencies": []
// },

// http://localhost:8881/actuator/configprops
// "configurationPropertiesReportEndpoint"
// "management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties": {
// 	"prefix": "management.endpoints.web",
// 	"properties": {
// 		"pathMapping": {},
// 		"exposure": {
// 		"include": [
// 			"*"
// 		],
// 		"exclude": []
// 	},
// 		"basePath": "/actuator"
// 	}
// },
// "management.endpoint.configprops-org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointProperties": {
// 	"prefix": "management.endpoint.configprops",
// 	"properties": {}
// },

// http://localhost:8881/actuator/env
// {
// 	"activeProfiles": [
// 		"dev"
// 	],
// 	"propertySources": [
// 		{
// 			"name": "server.ports",
// 			"properties": {
// 				"local.server.port": {
// 					"value": 8881
// 				}
// 			}
// 		},
// 		{
// 			"name": "servletContextInitParams",
// 			"properties": {}
// 		},
// 		{
// 			"name": "systemProperties",
// 			"properties": {
// 				"java.runtime.name": {
// 					"value": "Java(TM) SE Runtime Environment"
// 				},
// 				"sun.boot.library.path": {
// 					"value": "D:\\Program Files\\Java\\jdk1.8.0_211\\jre\\bin"
// 				},
// 				"java.vm.version": {
// 					"value": "25.211-b12"
// 				},
// 				"java.vm.vendor": {
// 					"value": "Oracle Corporation"
// 				},
// 				......
// 			}
// 		},
// 		{
// 			"name": "systemEnvironment",
// 			"properties": {
// 				......
// 				"JAVA_HOME": {
// 					"value": "D:\\Program Files\\Java\\jdk1.8.0_211",
// 					"origin": "System Environment Property \"JAVA_HOME\""
// 				},
// 				"GRADLE_HOME": {
// 					"value": "D:\\Program Files\\gradle-6.7",
// 					"origin": "System Environment Property \"GRADLE_HOME\""
// 				},
// 				......
// 		},
// 		{
// 			"name": "applicationConfig: [classpath:/application-dev.properties]",
// 				"properties": {
// 					"server.port": {
// 					"value": "8881",
// 					"origin": "class path resource [application-dev.properties]:1:13"
// 				}
// 			}
// 		},
// 		{
// 			"name": "applicationConfig: [classpath:/application.properties]",
// 			"properties": {
// 				"spring.application.name": {
// 					"value": "hello",
// 					"origin": "class path resource [application.properties]:1:25"
// 				},
// 				"server.port": {
// 					"value": "8885",
// 					"origin": "class path resource [application.properties]:2:13"
// 				},
// 				"spring.profiles.active": {
// 					"value": "dev",
// 					"origin": "class path resource [application.properties]:3:24"
// 				},
// 				"info.app.name": {
// 					"value": "spring-boot-hello",
// 					"origin": "class path resource [application.properties]:6:15"
// 				},
// 				"info.app.version": {
// 					"value": "v1.0.0",
// 					"origin": "class path resource [application.properties]:7:18"
// 				},
// 				"endpoints.info.enabled": {
// 					"value": "false",
// 					"origin": "class path resource [application.properties]:10:24"
// 				},
// 				"management.endpoints.web.base-path": {
// 					"value": "/actuator",
// 					"origin": "class path resource [application.properties]:16:36"
// 				},
// 				"management.endpoints.web.exposure.include": {
// 					"value": "*",
// 					"origin": "class path resource [application.properties]:18:43"
// 				}
// 			}
// 		}
// 	]
// }

// http://localhost:8881/actuator/mappings

// info.app.name=spring-boot-hello
// info.app.version=v1.0.0
// http://localhost:8881/actuator/info
// {"app":{"name":"spring-boot-hello","version":"v1.0.0"}}

// http://localhost:8881/actuator/metrics
// {
// 	"names": [
// 		"jvm.memory.max",
// 		"http.server.requests",
// 		"jvm.gc.memory.promoted",
// 		"tomcat.cache.hit",
// 		"tomcat.cache.access",
// 		"jvm.memory.used",
// 		"jvm.gc.max.data.size",
// 		"jvm.gc.pause",
// 		"jvm.memory.committed",
// 		"system.cpu.count",
// 		"logback.events",
// 		"tomcat.global.sent",
// 		"jvm.buffer.memory.used",
// 		"tomcat.sessions.created",
// 		"jvm.threads.daemon",
// 		"system.cpu.usage",
// 		"jvm.gc.memory.allocated",
// 		"tomcat.global.request.max",
// 		"tomcat.global.request",
// 		"tomcat.sessions.expired",
// 		"jvm.threads.live",
// 		"jvm.threads.peak",
// 		"tomcat.global.received",
// 		"process.uptime",
// 		"tomcat.sessions.rejected",
// 		"process.cpu.usage",
// 		"tomcat.threads.config.max",
// 		"jvm.classes.loaded",
// 		"jvm.classes.unloaded",
// 		"tomcat.global.error",
// 		"tomcat.sessions.active.current",
// 		"tomcat.sessions.alive.max",
// 		"jvm.gc.live.data.size",
// 		"tomcat.servlet.request.max",
// 		"tomcat.threads.current",
// 		"tomcat.servlet.request",
// 		"jvm.buffer.count",
// 		"jvm.buffer.total.capacity",
// 		"tomcat.sessions.active.max",
// 		"tomcat.threads.busy",
// 		"process.start.time",
// 		"tomcat.servlet.error"
// 	]
// }

// http://localhost:8881/actuator/metrics/jvm.threads.daemon
// {
// 	"name": "jvm.threads.daemon",
// 	"measurements": [
// 		{
// 			"statistic": "VALUE",
// 			"value": 22.0
// 		}
// 	],
// 	"availableTags": []
// }

// http://localhost:8881/actuator/metrics/jvm.threads.live
// {
// 	"name": "jvm.threads.live",
// 	"measurements": [
// 		{
// 			"statistic": "VALUE",
// 			"value": 24.0
// 		}
// 	],
// 	"availableTags": []
// }

// http://localhost:8881/actuator/metrics/jvm.threads.peak
// {
// 	"name": "jvm.threads.peak",
// 	"measurements": [
// 		{
// 			"statistic": "VALUE",
// 			"value": 26.0
// 		}
// 	],
// 	"availableTags": []
// }

// <version>1.3.7.RELEASE</version>